const Service = require('egg').Service;
const { md5 } = require('utility')
const jwt = require('jsonwebtoken')
class UserService extends Service {
    async login() {
        const { ctx, app } = this;
        const { username, password } = ctx.request.body;
        // 1、 查找数据库 有没有
        const isHaveUser = await app.mysql.get('users', { username, password: md5(String(password)) })
        if (isHaveUser) {
            // 登录成功
            const user = {
                id: isHaveUser.id,
                nickname: isHaveUser.nickname,
                avatar: isHaveUser.avatar
            }
            return {
                userData: user,
                token: jwt.sign({ ...user }, app.config.keys), // token 身份识别码 可以识别来你是谁你有什么权限
            }
        } else {
            return '请检查账号密码'
        }

    }
    async register() {
        const { ctx, app } = this;
        // 1. 接收 账号 密码 昵称  头像
        const { username, password, nickname, avatar } = ctx.request.body;
        // 2. 判断账号是否重复
        const isHaveUser = await app.mysql.get('users', { username })
        if (isHaveUser) return '账号已经存在'
        // 3. 将数据存储到数据库 密码需要加密
        const res = await app.mysql.insert('users', { username, password: md5(String(password)), nickname, avatar })
        return res;
    }
}

module.exports = UserService;